﻿using Mt.Site.Application.AccessStatistics.Dto;
using System.Collections.Generic;
using System.Threading.Tasks;

namespace Mt.Site.Application.AccessStatistics
{
    public interface IVisitStatisticAppService:IBackEndAppService
    {
        Task<GeneralStatisticDto> GetGeneralStatisticData();

        #region 趋势分析
        Task<RealTimeDto> GetRealTimeData();
        Task<List<TodayDetailItems>> GetRealTimeTodayDatas(PagedTodayDetailInput input);
        Task<RealTimeDetailOut> GetRealTimeDataBySessionId(RealTimeDetailInput input);
        Task<TrendStatisticDto> GetTrendStatisticAnalysis(PagedTrendStatisticDataInput input);
        #endregion


        #region 详细记录
        Task<AccessDetailData> GetAccessDetailRecordAsync(AccessDetailRecordInput input);

        Task<AccessDetailRecordDto> GetAccessDetailRecordItemsAsync(AccessDetailItemInput input);
        #endregion

        #region 来源分析
        Task<SourceAnalysisOut> GetAllSourceAnalysis(SourceAnalysisInput input);

        Task<SourceSearchEngineOut> GetSerachEngineAnalysis(SourceSearchEngineInput input);

        Task<SourceSearchKeyOut> GetSearchKeyAnalysis(SourceSearchKeyInput input);

        Task<SourceExternalLinkOut> GetExternalLinkAnalysis(SourceExternalLinkInput input);
        #endregion

        #region 页面分析
        Task<PagesAnalysisOut> GetPagesAnalysisAsync(PagesAnalysisInput input);

        Task<PageMenuAnalysisOut> GetPagesMenuAnalysisAsync(PageMenuAnalysisInput input);
        #endregion

        #region  访客分析
        Task<VisitorRegionOut> GetVisitorRegionAnalysis(VisitorRegionInput input);

        Task<List<VisitorAreaDetailItem>> GetVisitorDetailRegionOrIsp(VisitorAreaOrIpsInut input);

        Task<SystemEnvOut> GetSystemEnvAnalysis(SystemEnvInput input);

        Task<List<SystemDetailItem>> GetSystemEnvTaxonomyItems(SystemEnvTaxonomyInput input);
        #endregion


        Task<bool> SetCloseOrOpen(bool value);
    }
}
